home *** CD-ROM | disk | FTP | other *** search
- package javax.swing.plaf.basic;
-
- import java.awt.Dimension;
- import java.awt.event.ContainerListener;
- import java.beans.PropertyChangeListener;
- import javax.swing.AbstractButton;
- import javax.swing.JComponent;
- import javax.swing.JMenu;
- import javax.swing.JMenuBar;
- import javax.swing.KeyStroke;
- import javax.swing.LookAndFeel;
- import javax.swing.event.ChangeListener;
- import javax.swing.plaf.ComponentUI;
- import javax.swing.plaf.MenuBarUI;
- import javax.swing.plaf.UIResource;
-
- public class BasicMenuBarUI extends MenuBarUI {
- protected JMenuBar menuBar = null;
- protected ContainerListener containerListener;
- protected ChangeListener changeListener;
- private PropertyChangeListener propertyChangeListener;
-
- protected ChangeListener createChangeListener() {
- return new ChangeHandler(this);
- }
-
- protected ContainerListener createContainerListener() {
- return new ContainerHandler(this);
- }
-
- private PropertyChangeListener createPropertyChangeListener() {
- return new PropertyChangeHandler(this);
- }
-
- public static ComponentUI createUI(JComponent var0) {
- return new BasicMenuBarUI();
- }
-
- public Dimension getMaximumSize(JComponent var1) {
- return null;
- }
-
- public Dimension getMinimumSize(JComponent var1) {
- return null;
- }
-
- public Dimension getPreferredSize(JComponent var1) {
- return null;
- }
-
- protected void installDefaults() {
- if (this.menuBar.getLayout() == null || this.menuBar.getLayout() instanceof UIResource) {
- if (BasicGraphicsUtils.isLeftToRight(this.menuBar)) {
- this.menuBar.setLayout(new DefaultMenuLayout(this.menuBar, 0));
- } else {
- this.menuBar.setLayout(new RightToLeftMenuLayout((1)null));
- }
- }
-
- this.menuBar.setOpaque(true);
- LookAndFeel.installBorder(this.menuBar, "MenuBar.border");
- LookAndFeel.installColorsAndFont(this.menuBar, "MenuBar.background", "MenuBar.foreground", "MenuBar.font");
- }
-
- protected void installKeyboardActions() {
- this.menuBar.registerKeyboardAction(new TakeFocus(this.menuBar), KeyStroke.getKeyStroke(121, 0, false), 2);
- }
-
- protected void installListeners() {
- this.containerListener = this.createContainerListener();
- this.changeListener = this.createChangeListener();
- this.propertyChangeListener = this.createPropertyChangeListener();
-
- for(int var1 = 0; var1 < this.menuBar.getMenuCount(); ++var1) {
- JMenu var2 = this.menuBar.getMenu(var1);
- if (var2 != null) {
- ((AbstractButton)var2).getModel().addChangeListener(this.changeListener);
- }
- }
-
- this.menuBar.addContainerListener(this.containerListener);
- this.menuBar.addPropertyChangeListener(this.propertyChangeListener);
- }
-
- public void installUI(JComponent var1) {
- this.menuBar = (JMenuBar)var1;
- this.installDefaults();
- this.installListeners();
- this.installKeyboardActions();
- }
-
- protected void uninstallDefaults() {
- LookAndFeel.uninstallBorder(this.menuBar);
- }
-
- protected void uninstallKeyboardActions() {
- this.menuBar.unregisterKeyboardAction(KeyStroke.getKeyStroke(121, 0, false));
- }
-
- protected void uninstallListeners() {
- this.menuBar.removeContainerListener(this.containerListener);
- this.menuBar.removePropertyChangeListener(this.propertyChangeListener);
-
- for(int var1 = 0; var1 < this.menuBar.getMenuCount(); ++var1) {
- JMenu var2 = this.menuBar.getMenu(var1);
- if (var2 != null) {
- ((AbstractButton)var2).getModel().removeChangeListener(this.changeListener);
- }
- }
-
- this.containerListener = null;
- this.changeListener = null;
- this.propertyChangeListener = null;
- }
-
- public void uninstallUI(JComponent var1) {
- this.uninstallDefaults();
- this.uninstallListeners();
- this.uninstallKeyboardActions();
- this.menuBar = null;
- }
- }
-